#创建一个字典
#字典={。。。。}     为这样的格式 ‘key’：‘value’
echo= {
    'band':'porsche',
    'model':"911",
    'year':1963

}
print(echo)
#获取‘model的值  格式为 字典名[]
#也可以用get获取 格式为  字典名.get()
x = echo['model']
print(x)
x = echo.get("model")
# 更改值
echo["year"]= 2019
print(echo)

#遍历字典,循环遍历字典时，返回值是字典的键
for x in echo:
    print(x)
#返回字典的值   字典名[]
    print(echo[x])
#运用values     字典名。
for x in echo.values():
    print(x)

dict = {'Name': 'Zara', 'Age': 7, 'Class': 'First'}

dict['Age'] = 8  # 更新
dict['School'] = "RUNOOB"  # 添加

print("dict['Age']: ", dict['Age'])
print("dict['School']: ", dict['School'])
#删除字典元素
del dict['Name']#删了name
dict.clear() #清空
del dict #这个字典没了
#字典键的特性
#字典值可以没有限制地取任何python对象，既可以是标准的对象，也可以是用户定义的，但键不行。
#1.两个重要的点需要记住：
#dict = {'Name': 'Zara', 'Age': 7, 'Name': 'Manni'}

#print("dict['Name']: ", dict['Name'])
#以上实例输出结果：dict['Name']:  Manni
#2.键必须不可变，所以可以用数字，字符串或元组充当，所以用列表就不行，如下实例：
#dict = {['Name']: 'Zara', 'Age': 7}

#print("dict['Name']: ", dict['Name']) 不能用列表当键
'''
dict.clear()删除字典内所有元素
dict.copy()返回一个字典的浅复制
dict.get(key, default=None)返回指定键的值，如果值不在字典中返回default值
dict.has_key(key)如果键在字典dict里返回true，否则返回false
dict.items()以列表返回可遍历的(键, 值) 元组数组
dict.keys()以列表返回一个字典所有的键
dict.update(dict2)把字典dict2的键/值对更新到dict里
dict.values()以列表返回字典中的所有值
popitem()返回并删除字典中的最后一对键和值。
pop(key[,default])删除字典给定键 key 所对应的值，返回值为被删除的值。key值必须给出。 否则，返回default值。
dict.setdefault(key, default=None)和get()类似, 但如果键不存在于字典中，将会添加键并将值设为default
dict.fromkeys(seq[, val])创建一个新字典，以序列 seq 中元素做字典的键，val 为字典所有键对应的初始值
'''

#集合
#集合是没有重复元素的无序集合。基本用途包括成员资格测试和消除重复条目。集合对象还支持数学运算，例如并集，交集，差和对称差。
# 花括号或set()函数可用于创建集合。注意：要创建一个空集，您必须使用set()，而不是{};
basket = {'apple', 'orange', 'apple', 'pear', 'orange', 'banana'}
print(basket) #集合是不会出现重复的对象。
#{'orange', 'banana', 'pear', 'apple'}
'orange' in basket#查询 橘子是否在集合中
'crabgrass' in basket# 查询。。。是否在这个中
a = set('abracadabra')
b = set('alacazam')
print(a - b)
print(a | b)#这是合集，2个加起来，不出现重复
print(a & b)#交集 2个集合都有的
print(a ^ b)#没懂这是嘛集  就是除了重复的  剩下的
a = {x for x in 'abracadabra' if x not in 'abc'}#与列表推导类似，也支持set推导
print(a)
'''




'''
import random

num = random.randint(1, 100)
guess_chances = 7
print('您只有7次猜数字的机会哦！')

for i in range(1, guess_chances + 1):
    print('这是第' + str(i) + '次猜数字')
    guess = input('请输入数字：')
    if guess.isdigit():
        guess = int(guess)
        if guess < num:
            print('您输入的数字太小了，您还有' + str(guess_chances - i) + '次机会，请重新输入：')
        elif guess > num:
            print('您输入的数字太大了，您还有' + str(guess_chances - i) + '次机会，请重新输入：')
        elif guess == num:
            print('恭喜您猜对了')
            break
    elif guess == 'q':
        print('退出游戏！')
        break
    else:
        print('输入的内容必须为整数，请重新输入：')
while (guess_chances - i) == 0:
    print('您输入已经超过7次，游戏结束！')

